export default {
    // 1. 设置命名空间
    namespaced: true,
    // 共享数据
    state: {
        // 是否显示提示框
        isShowToast: false,
        // 提示内容
        toastMsg: '我是vuex提示内容',
        // 提示类型-图标 (success, danger, warning)
        toastType: 'warning',
    },
    mutations: {
        // 修改是否显示登录模态框状态
        // 之前: payload: true/false
        // 现在: payload: {a:xx,b:xx,c:xx}
        changeIsShowToast(state, payload) {
            // console.log('修改提示框显示状态mutations---', payload);
            state.isShowToast = payload.isShow;
            // 设置提示框显示才更新msg 和 type (解决提示框淡出留白bug)
            if (payload.isShow) {
                state.toastMsg = payload.title;
                state.toastType = payload.type;
            }

            // 只要显示了提示框, 都自动关了
            // 但是mutation只能写同步代码,写一个actions方法, 实现自动关闭
        },
    },
    actions: {
        // 可以写异步代码, 跟mutations类型, 不能直接修改数据, 提交到mutations修改
        asyncShowToast(context, payload) {
            // console.log('actions---', payload);
            // 显示提示框
            context.commit('changeIsShowToast', payload);
            // 自动关闭提示框
            setTimeout(() => {
                context.commit('changeIsShowToast', {
                    isShow: false,
                });
            }, 2000);
        },
    },
};
